package com.qijian.maindata.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qijian.common.annotation.KingDeeField;
import com.qijian.common.enums.ApprovalDescriptionEnum;
import com.qijian.maindata.enums.MoldDeviceStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.common.core.domain.BaseEntity;

/**
 * 设备对象 epm_eqp
 *
 * @author qijian
 * @date 2025-03-25
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@TableName("epm_eqp")
public class EpmEqp extends BaseEntity{
    private static final long serialVersionUID = 1L;

    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "唯一id")
    private Long id;

    @Excel(name = "设备编码")
    @ApiModelProperty(value = "设备编码")
    private String eqpCode;

    @Excel(name = "设备名称")
    @ApiModelProperty(value = "设备名称")
    private String eqpName;

//    @Excel(name = "安装位置ID")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "安装位置ID")
    private Long locationId;

    @Excel(name = "安装位置")
    @ApiModelProperty(value = "安装位置")
    private String  location;

//    @Excel(name = "设备类型ID")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "设备类型ID")
    private Long eqpTypeId;

//    @Excel(name = "部门ID")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "部门ID")
    private Long deptId;

    @Excel(name = "部门")
    @ApiModelProperty(value = "部门")
    private String dept;

    @Excel(name = "负责人")
    @ApiModelProperty(value = "负责人")
    private String owner;

//    @Excel(name = "安装地点")
//    @ApiModelProperty(value = "安装地点")
//    private String eqpLocation;

    @Excel(name = "设备类型")
    @ApiModelProperty(value = "设备类型")
    private String eqpType;


    @Excel(name = "规格型号")
    @ApiModelProperty(value = "规格型号")
    private String eqpModel;

//    @Excel(name = "设备品牌")
    @ApiModelProperty(value = "设备品牌")
    private String brand;

    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "购买时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "购买时间")
    private Date buyTime;

//    @Excel(name = "图片地址")
    @ApiModelProperty(value = "图片地址")
    private String imgUrl;

//    @Excel(name = "是否允许变更状态：是(Y);否(N)")
    @ApiModelProperty(value = "是否允许变更状态：是(Y);否(N)")
    private String changeStatusFlag;

//    @Excel(name = "启用标记：是(Y);否(N)")
    @ApiModelProperty(value = "启用标记：是(Y);否(N)")
    private String enableFlag;

//    @Excel(name = "资产来源：客户分摊(CUSTOMER_SHARE);自购(SELF_PURCHASE);客供(CUSTOMER_SUPPLY);样机(PROTOTYPE);租赁(LEASE)")
    @ApiModelProperty(value = "资产来源：客户分摊(CUSTOMER_SHARE);自购(SELF_PURCHASE);客供(CUSTOMER_SUPPLY);样机(PROTOTYPE);租赁(LEASE)")
    private String assetsSource;

    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "启用时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "启用时间")
    private Date startUseTime;

//    @Excel(name = "使用年限")
    @ApiModelProperty(value = "使用年限")
    private Long useYear;

//    @Excel(name = "设备用途")
    @ApiModelProperty(value = "设备用途")
    private String eqpUseTo;

    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

//    @Excel(name = "维修负责人")
    @ApiModelProperty(value = "维修负责人")
    private String repairOwner;

//    @Excel(name = "使用状况")
    @ApiModelProperty(value = "使用状况")
    private String useStatus;

//    @Excel(name = "生产商ID")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "生产商ID")
    private Long madeId;

//    @Excel(name = "供应商ID")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "供应商ID")
    private Long supplierId;

//    @Excel(name = "负责人ID")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "负责人ID")
    private Long ownerId;

//    @Excel(name = "维修负责人ID")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "维修负责人ID")
    private Long repairOwnerId;

    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "安装时间")
    private Date installTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "下次保养时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "下次保养时间")
    private Date nextMtTime;

//    @Excel(name = "设备参数")
    @ApiModelProperty(value = "设备参数")
    private String eqpParam;

//    @Excel(name = "开机率")
    @ApiModelProperty(value = "开机率")
    private BigDecimal startupRate;

//    @Excel(name = "审核者")
    @ApiModelProperty(value = "审核者")
    private String approvalBy;

    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间")
    private Date approvalTime;

//    @Excel(name = "审核状态")
    @ApiModelProperty(value = "审核状态")
    private ApprovalDescriptionEnum approvalStatus;

    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "提交时间")
    private Date submissionTime;

}
